


<!doctype html>
<html lang="zh" class="no-js">
  <head>
    
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width,initial-scale=1">
      
        <meta name="description" content="My Docs">
      
      
        <link rel="canonical" href="https://zuoguocai.gitee.io/admin-guide/upgrade/1.4.4/">
      
      
        <meta name="author" content="zuoguocai#126.com">
      
      <link rel="shortcut icon" href="../../../img/facio.ico">
      <meta name="generator" content="mkdocs-1.1.2, mkdocs-material-5.5.12">
    
    
      
        <title>1.4.4 升级到 1.4.5 - 国才大叔的小屋</title>
      
    
    
      <link rel="stylesheet" href="../../../assets/stylesheets/main.4dd2dd8d.min.css">
      
        <link rel="stylesheet" href="../../../assets/stylesheets/palette.6a5ad368.min.css">
      
      
        
        
        <meta name="theme-color" content="#4cae4f">
      
    
    
    
      
        <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
        <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700%7CRoboto+Mono&display=fallback">
        <style>body,input{font-family:"Roboto",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono",SFMono-Regular,Consolas,Menlo,monospace}</style>
      
    
    
    
      <link rel="stylesheet" href="../../../css/extra.css">
    
    
      
        
<script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-147297392-3","mydoc"),ga("set","anonymizeIp",!0),ga("send","pageview"),document.addEventListener("DOMContentLoaded",function(){document.forms.search&&document.forms.search.query.addEventListener("blur",function(){if(this.value){var e=document.location.pathname;ga("send","pageview",e+"?q="+this.value)}})}),document.addEventListener("DOMContentSwitch",function(){ga("send","pageview",document.location.pathname)})</script>
<script async src="https://www.google-analytics.com/analytics.js"></script>
      
    
    
  </head>
  
  
    
    
    
    <body dir="ltr" data-md-color-scheme="" data-md-color-primary="green" data-md-color-accent="red">
  
    
    <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
    <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
    <label class="md-overlay" for="__drawer"></label>
    <div data-md-component="skip">
      
        
        <a href="#144-145" class="md-skip">
          跳转至
        </a>
      
    </div>
    <div data-md-component="announce">
      
    </div>
    
      <header class="md-header" data-md-component="header">
  <nav class="md-header-nav md-grid" aria-label="Header">
    <a href="https://zuoguocai.gitee.io/" title="国才大叔的小屋" class="md-header-nav__button md-logo" aria-label="国才大叔的小屋">
      
  <img src="../../../img/logo.png" alt="logo">

    </a>
    <label class="md-header-nav__button md-icon" for="__drawer">
      <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
    </label>
    <div class="md-header-nav__title" data-md-component="header-title">
      
        <div class="md-header-nav__ellipsis">
          <span class="md-header-nav__topic md-ellipsis">
            国才大叔的小屋
          </span>
          <span class="md-header-nav__topic md-ellipsis">
            
              1.4.4 升级到 1.4.5
            
          </span>
        </div>
      
    </div>
    
      <label class="md-header-nav__button md-icon" for="__search">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
      </label>
      
<div class="md-search" data-md-component="search" role="dialog">
  <label class="md-search__overlay" for="__search"></label>
  <div class="md-search__inner" role="search">
    <form class="md-search__form" name="search">
      <input type="text" class="md-search__input" name="query" aria-label="搜索" placeholder="搜索" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active">
      <label class="md-search__icon md-icon" for="__search">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0116 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 019.5 16 6.5 6.5 0 013 9.5 6.5 6.5 0 019.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
      </label>
      <button type="reset" class="md-search__icon md-icon" aria-label="Clear" data-md-component="search-reset" tabindex="-1">
        <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
      </button>
    </form>
    <div class="md-search__output">
      <div class="md-search__scrollwrap" data-md-scrollfix>
        <div class="md-search-result" data-md-component="search-result">
          <div class="md-search-result__meta">
            Initializing search
          </div>
          <ol class="md-search-result__list"></ol>
        </div>
      </div>
    </div>
  </div>
</div>
    
    
      <div class="md-header-nav__source">
        
<a href="https://github.com/ZuoGuocai/getSSLInfo" title="前往 GitHub 仓库" class="md-source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    GitHub Star
  </div>
</a>
      </div>
    
  </nav>
</header>
    
    <div class="md-container" data-md-component="container">
      
        
      
      
        
      
      <main class="md-main" data-md-component="main">
        <div class="md-main__inner md-grid">
          
            
              <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  <label class="md-nav__title" for="__drawer">
    <a href="https://zuoguocai.gitee.io/" title="国才大叔的小屋" class="md-nav__button md-logo" aria-label="国才大叔的小屋">
      
  <img src="../../../img/logo.png" alt="logo">

    </a>
    国才大叔的小屋
  </label>
  
    <div class="md-nav__source">
      
<a href="https://github.com/ZuoGuocai/getSSLInfo" title="前往 GitHub 仓库" class="md-source">
  <div class="md-source__icon md-icon">
    
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M439.55 236.05L244 40.45a28.87 28.87 0 00-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 01-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 000 40.81l195.61 195.6a28.86 28.86 0 0040.8 0l194.69-194.69a28.86 28.86 0 000-40.81z"/></svg>
  </div>
  <div class="md-source__repository">
    GitHub Star
  </div>
</a>
    </div>
  
  <ul class="md-nav__list" data-md-scrollfix>
    
      
      
      


  <li class="md-nav__item">
    <a href="../../.." title="总体介绍" class="md-nav__link">
      总体介绍
    </a>
  </li>

    
      
      
      


  <li class="md-nav__item md-nav__item--nested">
    
      <input class="md-nav__toggle md-toggle" data-md-toggle="nav-2" type="checkbox" id="nav-2">
    
    <label class="md-nav__link" for="nav-2">
      安装配置
      <span class="md-nav__icon md-icon"></span>
    </label>
    <nav class="md-nav" aria-label="安装配置" data-md-level="1">
      <label class="md-nav__title" for="nav-2">
        <span class="md-nav__icon md-icon"></span>
        安装配置
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../../../install/step_by_step/" title="安装文档" class="md-nav__link">
      安装文档
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../install/setup_by_fast/" title="极速部署" class="md-nav__link">
      极速部署
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../install/docker_install/" title="容器部署" class="md-nav__link">
      容器部署
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item md-nav__item--nested">
    
      <input class="md-nav__toggle md-toggle" data-md-toggle="nav-2-4" type="checkbox" id="nav-2-4">
    
    <label class="md-nav__link" for="nav-2-4">
      分布式部署
      <span class="md-nav__icon md-icon"></span>
    </label>
    <nav class="md-nav" aria-label="分布式部署" data-md-level="2">
      <label class="md-nav__title" for="nav-2-4">
        <span class="md-nav__icon md-icon"></span>
        分布式部署
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../../../install/setup_by_prod/" title="环境说明" class="md-nav__link">
      环境说明
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../install/prod/distributed_01/" title="NFS 部署" class="md-nav__link">
      NFS 部署
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../install/prod/distributed_02/" title="Tengine 部署" class="md-nav__link">
      Tengine 部署
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../install/prod/distributed_03/" title="Mariadb 部署" class="md-nav__link">
      Mariadb 部署
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../install/prod/distributed_04/" title="Redis 部署" class="md-nav__link">
      Redis 部署
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../install/prod/distributed_05/" title="Core 部署" class="md-nav__link">
      Core 部署
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../install/prod/distributed_06/" title="Koko 部署" class="md-nav__link">
      Koko 部署
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../install/prod/distributed_07/" title="Guacamole 部署" class="md-nav__link">
      Guacamole 部署
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../install/install_security/" title="安全建议" class="md-nav__link">
      安全建议
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../install/uninstall/" title="卸载文档" class="md-nav__link">
      卸载文档
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

    
      
      
      

  


  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
    
      <input class="md-nav__toggle md-toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3" checked>
    
    <label class="md-nav__link" for="nav-3">
      管理文档
      <span class="md-nav__icon md-icon"></span>
    </label>
    <nav class="md-nav" aria-label="管理文档" data-md-level="1">
      <label class="md-nav__title" for="nav-3">
        <span class="md-nav__icon md-icon"></span>
        管理文档
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../../quick_start/" title="快速入门" class="md-nav__link">
      快速入门
    </a>
  </li>

        
          
          
          

  


  <li class="md-nav__item md-nav__item--active md-nav__item--nested">
    
      <input class="md-nav__toggle md-toggle" data-md-toggle="nav-3-2" type="checkbox" id="nav-3-2" checked>
    
    <label class="md-nav__link" for="nav-3-2">
      更新升级
      <span class="md-nav__icon md-icon"></span>
    </label>
    <nav class="md-nav" aria-label="更新升级" data-md-level="2">
      <label class="md-nav__title" for="nav-3-2">
        <span class="md-nav__icon md-icon"></span>
        更新升级
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../1.0.0-1.4.3/" title="1.0.0-1.4.3 升级到 1.4.4" class="md-nav__link">
      1.0.0-1.4.3 升级到 1.4.4
    </a>
  </li>

        
          
          
          

  


  <li class="md-nav__item md-nav__item--active">
    
    <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
    
      
    
    
      <label class="md-nav__link md-nav__link--active" for="__toc">
        1.4.4 升级到 1.4.5
        <span class="md-nav__icon md-icon"></span>
      </label>
    
    <a href="./" title="1.4.4 升级到 1.4.5" class="md-nav__link md-nav__link--active">
      1.4.4 升级到 1.4.5
    </a>
    
      
<nav class="md-nav md-nav--secondary" aria-label="目录">
  
  
    
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      目录
    </label>
    <ul class="md-nav__list" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#_1" class="md-nav__link">
    升级步骤
  </a>
  
    <nav class="md-nav" aria-label="升级步骤">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#1-core" class="md-nav__link">
    1. 停止 core
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#2" class="md-nav__link">
    2. 更新代码
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#3" class="md-nav__link">
    3. 更新配置文件
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#4" class="md-nav__link">
    4. 更新依赖
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#5" class="md-nav__link">
    5. 处理升级
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#5-core" class="md-nav__link">
    5. 启动 core
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
    </ul>
  
</nav>
    
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../1.4.5-1.4.10/" title="1.4.5-1.4.10 升级到 最新" class="md-nav__link">
      1.4.5-1.4.10 升级到 最新
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../1.5.0/" title="1.5.0 及之后版本升级到 最新" class="md-nav__link">
      1.5.0 及之后版本升级到 最新
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../other/" title="其他部署方式升级说明" class="md-nav__link">
      其他部署方式升级说明
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../migration/" title="迁移文档" class="md-nav__link">
      迁移文档
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item md-nav__item--nested">
    
      <input class="md-nav__toggle md-toggle" data-md-toggle="nav-3-4" type="checkbox" id="nav-3-4">
    
    <label class="md-nav__link" for="nav-3-4">
      资产要求
      <span class="md-nav__icon md-icon"></span>
    </label>
    <nav class="md-nav" aria-label="资产要求" data-md-level="2">
      <label class="md-nav__title" for="nav-3-4">
        <span class="md-nav__icon md-icon"></span>
        资产要求
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../../assets/telnet/" title="Tetnet" class="md-nav__link">
      Tetnet
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../assets/linux_ssh/" title="Linux SSH" class="md-nav__link">
      Linux SSH
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../assets/linux_vnc/" title="Linux VNC" class="md-nav__link">
      Linux VNC
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../assets/windows_ssh/" title="Windows SSH" class="md-nav__link">
      Windows SSH
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../assets/windows_vnc/" title="Windows VNC" class="md-nav__link">
      Windows VNC
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../assets/windows_rdp/" title="Windows RDP" class="md-nav__link">
      Windows RDP
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

        
          
          
          


  <li class="md-nav__item md-nav__item--nested">
    
      <input class="md-nav__toggle md-toggle" data-md-toggle="nav-3-5" type="checkbox" id="nav-3-5">
    
    <label class="md-nav__link" for="nav-3-5">
      身份认证
      <span class="md-nav__icon md-icon"></span>
    </label>
    <nav class="md-nav" aria-label="身份认证" data-md-level="2">
      <label class="md-nav__title" for="nav-3-5">
        <span class="md-nav__icon md-icon"></span>
        身份认证
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../../authentication/cas/" title="CAS 认证" class="md-nav__link">
      CAS 认证
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../authentication/mfa/" title="MFA 认证" class="md-nav__link">
      MFA 认证
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../authentication/ldap/" title="LDAP 认证" class="md-nav__link">
      LDAP 认证
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../authentication/openid/" title="OpenID 认证" class="md-nav__link">
      OpenID 认证
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../authentication/radius/" title="Radius 认证" class="md-nav__link">
      Radius 认证
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../proxy/" title="反向代理" class="md-nav__link">
      反向代理
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../env/" title="参数说明" class="md-nav__link">
      参数说明
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

    
      
      
      


  <li class="md-nav__item md-nav__item--nested">
    
      <input class="md-nav__toggle md-toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4">
    
    <label class="md-nav__link" for="nav-4">
      开发文档
      <span class="md-nav__icon md-icon"></span>
    </label>
    <nav class="md-nav" aria-label="开发文档" data-md-level="1">
      <label class="md-nav__title" for="nav-4">
        <span class="md-nav__icon md-icon"></span>
        开发文档
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../../../dev/rest_api/" title="API文档" class="md-nav__link">
      API文档
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

    
      
      
      


  <li class="md-nav__item md-nav__item--nested">
    
      <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
    
    <label class="md-nav__link" for="nav-5">
      用户文档
      <span class="md-nav__icon md-icon"></span>
    </label>
    <nav class="md-nav" aria-label="用户文档" data-md-level="1">
      <label class="md-nav__title" for="nav-5">
        <span class="md-nav__icon md-icon"></span>
        用户文档
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../../../user-guide/assets/user-asset/" title="我的资产" class="md-nav__link">
      我的资产
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item md-nav__item--nested">
    
      <input class="md-nav__toggle md-toggle" data-md-toggle="nav-5-2" type="checkbox" id="nav-5-2">
    
    <label class="md-nav__link" for="nav-5-2">
      我的应用
      <span class="md-nav__icon md-icon"></span>
    </label>
    <nav class="md-nav" aria-label="我的应用" data-md-level="2">
      <label class="md-nav__title" for="nav-5-2">
        <span class="md-nav__icon md-icon"></span>
        我的应用
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../../../user-guide/applications/user-database-app/" title="数据库应用" class="md-nav__link">
      数据库应用
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../user-guide/ops/command-executions/create/" title="命令执行" class="md-nav__link">
      命令执行
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../user-guide/users/profile/" title="个人信息" class="md-nav__link">
      个人信息
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../user-guide/terminal/web-terminal/" title="Web终端" class="md-nav__link">
      Web终端
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../user-guide/terminal/web-sftp/" title="文件管理" class="md-nav__link">
      文件管理
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

    
      
      
      


  <li class="md-nav__item md-nav__item--nested">
    
      <input class="md-nav__toggle md-toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6">
    
    <label class="md-nav__link" for="nav-6">
      帮助文档
      <span class="md-nav__icon md-icon"></span>
    </label>
    <nav class="md-nav" aria-label="帮助文档" data-md-level="1">
      <label class="md-nav__title" for="nav-6">
        <span class="md-nav__icon md-icon"></span>
        帮助文档
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../../../faq/other/" title="其他问题" class="md-nav__link">
      其他问题
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../faq/core/" title="Core 常见问题" class="md-nav__link">
      Core 常见问题
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../faq/luna/" title="Luna 常见问题" class="md-nav__link">
      Luna 常见问题
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../faq/koko/" title="koko 常见问题" class="md-nav__link">
      koko 常见问题
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../faq/guacamole/" title="Guacamole 问题" class="md-nav__link">
      Guacamole 问题
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

    
      
      
      


  <li class="md-nav__item md-nav__item--nested">
    
      <input class="md-nav__toggle md-toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7">
    
    <label class="md-nav__link" for="nav-7">
      关于
      <span class="md-nav__icon md-icon"></span>
    </label>
    <nav class="md-nav" aria-label="关于" data-md-level="1">
      <label class="md-nav__title" for="nav-7">
        <span class="md-nav__icon md-icon"></span>
        关于
      </label>
      <ul class="md-nav__list" data-md-scrollfix>
        
        
          
          
          


  <li class="md-nav__item">
    <a href="../../../about/contributor/" title="贡献列表" class="md-nav__link">
      贡献列表
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../about/change_log/" title="更新说明" class="md-nav__link">
      更新说明
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../about/contact/" title="联系方式" class="md-nav__link">
      联系方式
    </a>
  </li>

        
          
          
          


  <li class="md-nav__item">
    <a href="../../../about/commercial/" title="商业产品" class="md-nav__link">
      商业产品
    </a>
  </li>

        
      </ul>
    </nav>
  </li>

    
      
      
      


  <li class="md-nav__item">
    <a href="../../../enterprise/" title="企业版试用" class="md-nav__link">
      企业版试用
    </a>
  </li>

    
  </ul>
</nav>
                  </div>
                </div>
              </div>
            
            
              <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
                <div class="md-sidebar__scrollwrap">
                  <div class="md-sidebar__inner">
                    
<nav class="md-nav md-nav--secondary" aria-label="目录">
  
  
    
  
  
    <label class="md-nav__title" for="__toc">
      <span class="md-nav__icon md-icon"></span>
      目录
    </label>
    <ul class="md-nav__list" data-md-scrollfix>
      
        <li class="md-nav__item">
  <a href="#_1" class="md-nav__link">
    升级步骤
  </a>
  
    <nav class="md-nav" aria-label="升级步骤">
      <ul class="md-nav__list">
        
          <li class="md-nav__item">
  <a href="#1-core" class="md-nav__link">
    1. 停止 core
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#2" class="md-nav__link">
    2. 更新代码
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#3" class="md-nav__link">
    3. 更新配置文件
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#4" class="md-nav__link">
    4. 更新依赖
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#5" class="md-nav__link">
    5. 处理升级
  </a>
  
</li>
        
          <li class="md-nav__item">
  <a href="#5-core" class="md-nav__link">
    5. 启动 core
  </a>
  
</li>
        
      </ul>
    </nav>
  
</li>
      
    </ul>
  
</nav>
                  </div>
                </div>
              </div>
            
          
          <div class="md-content">
            <article class="md-content__inner md-typeset">
              
                
                
                  
                
                
                <h1 id="144-145">1.4.4 版本升级到 1.4.5<a class="headerlink" href="#144-145" title="Permanent link">&para;</a></h1>
<div class="admonition warning">
<p class="admonition-title">升级及迁移请保持 SECRET_KEY 与旧版本一致, 否则会导致数据库加密数据无法解密</p>
</div>
<ul>
<li>更新前请一定要做好备份 数据库 和 JumpServer 源代码的工作</li>
</ul>
<div class="highlight"><pre><span></span><code>cp -r /opt/jumpserver /opt/jumpserver_1.4.4_bak
mysqldump -uroot -p jumpserver &gt; /opt/jumpserver_1.4.4.sql
</code></pre></div>

<h2 id="_1">升级步骤<a class="headerlink" href="#_1" title="Permanent link">&para;</a></h2>
<div class="admonition warning">
<p class="admonition-title">请务必认真详细阅读每一个文字并理解后才能操作升级事宜</p>
<p>请先检查自己各组件的当前版本<br />
本文档仅适合 1.4.4 的版本升级教程<br />
从 1.4.x 版本开始, mysql 版本需要大于等于 5.6, mariadb 版本需要大于等于 5.5.56<br />
更新配置文件需要把对应旧版本的设置复制到新的配置文件</p>
</div>
<h3 id="1-core">1. 停止 core<a class="headerlink" href="#1-core" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code><span class="nb">cd</span> /opt/jumpserver
<span class="nb">source</span> /opt/py3/bin/activate
./jms stop
</code></pre></div>

<div class="admonition tip">
<p class="admonition-title">自行替换 /opt 为你实际安装目录</p>
</div>
<h3 id="2">2. 更新代码<a class="headerlink" href="#2" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code><span class="nb">cd</span> /opt/jumpserver
git fetch
git checkout <span class="m">1</span>.4.5
git pull
</code></pre></div>

<details class="question"><summary>如果执行 git pull 提示 error, 请按照提示自行处理</summary><p>提示 error: Your local changes to the following file would be overwritten by merge
<div class="highlight"><pre><span></span><code>git reset --hard
git pull
</code></pre></div></p>
</details>
<h3 id="3">3. 更新配置文件<a class="headerlink" href="#3" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code>mv config.py config_1.4.4.bak
cp config_example.py config.py
<span class="nv">BOOTSTRAP_TOKEN</span><span class="o">=</span><span class="sb">`</span>cat /dev/urandom <span class="p">|</span> tr -dc A-Za-z0-9 <span class="p">|</span> head -c <span class="m">16</span><span class="sb">`</span>
sed -i <span class="s2">&quot;s/BOOTSTRAP_TOKEN = &#39;PleaseChangeMe&#39;/BOOTSTRAP_TOKEN = &#39;</span><span class="nv">$BOOTSTRAP_TOKEN</span><span class="s2">&#39;/g&quot;</span> config.py
</code></pre></div>

<div class="highlight"><pre><span></span><code>vi config.py
</code></pre></div>

<div class="admonition warning">
<p class="admonition-title">把旧配置文件 config_1.4.4.bak 的相关内容填到新的配置文件 config.yml 里面</p>
<p>请勿照抄, 以下模板仅供参考
<div class="highlight"><pre><span></span><code><span class="ch">#!/usr/bin/env python3</span>
<span class="c1"># -*- coding: utf-8 -*-</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="sd">    jumpserver.config</span>
<span class="sd">    ~~~~~~~~~~~~~~~~~</span>
<span class="sd">    Jumpserver project setting file</span>
<span class="sd">    :copyright: (c) 2014-2017 by Jumpserver Team</span>
<span class="sd">    :license: GPL v2, see LICENSE for more details.</span>
<span class="sd">&quot;&quot;&quot;</span>
<span class="kn">import</span> <span class="nn">os</span>

<span class="n">BASE_DIR</span> <span class="o">=</span> <span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">dirname</span><span class="p">(</span><span class="n">os</span><span class="o">.</span><span class="n">path</span><span class="o">.</span><span class="n">abspath</span><span class="p">(</span><span class="vm">__file__</span><span class="p">))</span>


<span class="k">class</span> <span class="nc">Config</span><span class="p">:</span>
    <span class="sd">&quot;&quot;&quot;</span>
<span class="sd">    Jumpserver Config File</span>
<span class="sd">    Jumpserver 配置文件</span>
<span class="sd">    Jumpserver use this config for drive django framework running,</span>
<span class="sd">    You can set is value or set the same envirment value,</span>
<span class="sd">    Jumpserver look for config order: file =&gt; env =&gt; default</span>
<span class="sd">    Jumpserver使用配置来驱动Django框架的运行，</span>
<span class="sd">    你可以在该文件中设置，或者设置同样名称的环境变量,</span>
<span class="sd">    Jumpserver使用配置的顺序: 文件 =&gt; 环境变量 =&gt; 默认值</span>
<span class="sd">    &quot;&quot;&quot;</span>
    <span class="c1"># SECURITY WARNING: keep the secret key used in production secret!</span>
    <span class="c1"># 加密秘钥 生产环境中请修改为随机字符串，请勿外泄</span>
    <span class="n">SECRET_KEY</span> <span class="o">=</span> <span class="s1">&#39;2vym+ky!997d5kkcc64mnz06y1mmui3lut#(^wd=</span><span class="si">%s</span><span class="s1">_qj$1</span><span class="si">%x</span><span class="s1">&#39;</span>

    <span class="c1"># SECURITY WARNING: keep the bootstrap token used in production secret!</span>
    <span class="c1"># 预共享Token coco和guacamole用来注册服务账号，不在使用原来的注册接受机制</span>
    <span class="n">BOOTSTRAP_TOKEN</span> <span class="o">=</span> <span class="s1">&#39;PleaseChangeMe&#39;</span>

    <span class="c1"># Development env open this, when error occur display the full process track, Production disable it</span>
    <span class="c1"># DEBUG 模式 开启DEBUG后遇到错误时可以看到更多日志</span>
    <span class="c1"># DEBUG = True</span>

    <span class="c1"># DEBUG, INFO, WARNING, ERROR, CRITICAL can set. See https://docs.djangoproject.com/en/1.10/topics/logging/</span>
    <span class="c1"># 日志级别</span>
    <span class="c1"># LOG_LEVEL = &#39;DEBUG&#39;</span>
    <span class="c1"># LOG_DIR = os.path.join(BASE_DIR, &#39;logs&#39;)</span>

    <span class="c1"># Session expiration setting, Default 24 hour, Also set expired on on browser close</span>
    <span class="c1"># 浏览器Session过期时间，默认24小时, 也可以设置浏览器关闭则过期</span>
    <span class="c1"># SESSION_COOKIE_AGE = 3600 * 24</span>
    <span class="c1"># SESSION_EXPIRE_AT_BROWSER_CLOSE = False</span>

    <span class="c1"># Database setting, Support sqlite3, mysql, postgres ....</span>
    <span class="c1"># 数据库设置</span>
    <span class="c1"># See https://docs.djangoproject.com/en/1.10/ref/settings/#databases</span>

    <span class="c1"># SQLite setting:</span>
    <span class="c1"># 使用单文件sqlite数据库</span>
    <span class="c1"># DB_ENGINE = &#39;sqlite3&#39;</span>
    <span class="c1"># DB_NAME = os.path.join(BASE_DIR, &#39;data&#39;, &#39;db.sqlite3&#39;)</span>

    <span class="c1"># MySQL or postgres setting like:</span>
    <span class="c1"># 使用Mysql作为数据库</span>
    <span class="n">DB_ENGINE</span> <span class="o">=</span> <span class="s1">&#39;mysql&#39;</span>
    <span class="n">DB_HOST</span> <span class="o">=</span> <span class="s1">&#39;127.0.0.1&#39;</span>
    <span class="n">DB_PORT</span> <span class="o">=</span> <span class="mi">3306</span>
    <span class="n">DB_USER</span> <span class="o">=</span> <span class="s1">&#39;jumpserver&#39;</span>
    <span class="n">DB_PASSWORD</span> <span class="o">=</span> <span class="s1">&#39;&#39;</span>
    <span class="n">DB_NAME</span> <span class="o">=</span> <span class="s1">&#39;jumpserver&#39;</span>

    <span class="c1"># When Django start it will bind this host and port</span>
    <span class="c1"># ./manage.py runserver 127.0.0.1:8080</span>
    <span class="c1"># 运行时绑定端口</span>
    <span class="n">HTTP_BIND_HOST</span> <span class="o">=</span> <span class="s1">&#39;0.0.0.0&#39;</span>
    <span class="n">HTTP_LISTEN_PORT</span> <span class="o">=</span> <span class="mi">8080</span>

    <span class="c1"># Use Redis as broker for celery and web socket</span>
    <span class="c1"># Redis配置</span>
    <span class="n">REDIS_HOST</span> <span class="o">=</span> <span class="s1">&#39;127.0.0.1&#39;</span>
    <span class="n">REDIS_PORT</span> <span class="o">=</span> <span class="mi">6379</span>
    <span class="c1"># REDIS_PASSWORD = &#39;&#39;</span>
    <span class="c1"># REDIS_DB_CELERY_BROKER = 3</span>
    <span class="c1"># REDIS_DB_CACHE = 4</span>

    <span class="c1"># Use OpenID authorization</span>
    <span class="c1"># 使用OpenID 来进行认证设置</span>
    <span class="c1"># BASE_SITE_URL = &#39;http://localhost:8080&#39;</span>
    <span class="c1"># AUTH_OPENID = False  # True or False</span>
    <span class="c1"># AUTH_OPENID_SERVER_URL = &#39;https://openid-auth-server.com/&#39;</span>
    <span class="c1"># AUTH_OPENID_REALM_NAME = &#39;realm-name&#39;</span>
    <span class="c1"># AUTH_OPENID_CLIENT_ID = &#39;client-id&#39;</span>
    <span class="c1"># AUTH_OPENID_CLIENT_SECRET = &#39;client-secret&#39;</span>

    <span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">):</span>
        <span class="k">pass</span>

    <span class="k">def</span> <span class="fm">__getattr__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">item</span><span class="p">):</span>
        <span class="k">return</span> <span class="kc">None</span>


<span class="k">class</span> <span class="nc">DevelopmentConfig</span><span class="p">(</span><span class="n">Config</span><span class="p">):</span>
    <span class="k">pass</span>


<span class="k">class</span> <span class="nc">TestConfig</span><span class="p">(</span><span class="n">Config</span><span class="p">):</span>
    <span class="k">pass</span>


<span class="k">class</span> <span class="nc">ProductionConfig</span><span class="p">(</span><span class="n">Config</span><span class="p">):</span>
    <span class="k">pass</span>


<span class="c1"># Default using Config settings, you can write if/else for different env</span>
<span class="n">config</span> <span class="o">=</span> <span class="n">DevelopmentConfig</span><span class="p">()</span>
</code></pre></div></p>
</div>
<h3 id="4">4. 更新依赖<a class="headerlink" href="#4" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code>pip install wheel
pip install --upgrade pip setuptools
pip install -r requirements/requirements.txt
</code></pre></div>

<h3 id="5">5. 处理升级<a class="headerlink" href="#5" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code><span class="nb">cd</span> utils
sh make_migrations.sh
</code></pre></div>

<details class="question"><summary>如果执行 sh make_migrations.sh 有错误, 请参考此处进行处理</summary><p>You have an error in your SQL syntax; check the manual than corresponds to your MySql server version for the right syntax to use near '(6) NOT NULL'
<div class="highlight"><pre><span></span><code># 这是因为你的数据库版本不对<span class="p">,</span> 从 <span class="m">1</span>.<span class="m">4</span>.<span class="k">x</span> 版本开始 mysql 版本需要大于等于 <span class="m">5</span>.<span class="m">6</span><span class="p">,</span> mariadb 版本需要大于等于 <span class="m">5</span>.<span class="m">5</span>.<span class="m">56</span>
# 请升级数据库后重新操作
</code></pre></div></p>
</details>
<div class="admonition warning">
<p class="admonition-title">升级前版本小于 1.1.0 需要执行此步骤</p>
<div class="highlight"><pre><span></span><code>sh 2018_04_11_migrate_permissions.sh
</code></pre></div>

</div>
<div class="admonition warning">
<p class="admonition-title">升级前版本小于 1.4.0 需要执行此步骤</p>
<div class="highlight"><pre><span></span><code>sh 2018_07_15_set_win_protocol_to_ssh.sh
</code></pre></div>

</div>
<h3 id="5-core">5. 启动 core<a class="headerlink" href="#5-core" title="Permanent link">&para;</a></h3>
<div class="highlight"><pre><span></span><code><span class="nb">cd</span> /opt/jumpserver
./jms start
</code></pre></div>

<div class="admonition tip">
<p class="admonition-title">确定启动没有错误</p>
</div>
<ul>
<li>请接着根据 <a href="../1.4.5-1.4.10/">1.4.5 升级到最新版本</a> 的文档升级到最新版本, 否则无法正常使用</li>
</ul>
                
              
              
                


              
            </article>
          </div>
        </div>
      </main>
      
        
<footer class="md-footer">
  
    <div class="md-footer-nav">
      <nav class="md-footer-nav__inner md-grid" aria-label="Footer">
        
          <a href="../1.0.0-1.4.3/" title="1.0.0-1.4.3 升级到 1.4.4" class="md-footer-nav__link md-footer-nav__link--prev" rel="prev">
            <div class="md-footer-nav__button md-icon">
              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
            </div>
            <div class="md-footer-nav__title">
              <div class="md-ellipsis">
                <span class="md-footer-nav__direction">
                  上一页
                </span>
                1.0.0-1.4.3 升级到 1.4.4
              </div>
            </div>
          </a>
        
        
          <a href="../1.4.5-1.4.10/" title="1.4.5-1.4.10 升级到 最新" class="md-footer-nav__link md-footer-nav__link--next" rel="next">
            <div class="md-footer-nav__title">
              <div class="md-ellipsis">
                <span class="md-footer-nav__direction">
                  下一页
                </span>
                1.4.5-1.4.10 升级到 最新
              </div>
            </div>
            <div class="md-footer-nav__button md-icon">
              <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
            </div>
          </a>
        
      </nav>
    </div>
  
  <div class="md-footer-meta md-typeset">
    <div class="md-footer-meta__inner md-grid">
      <div class="md-footer-copyright">
        
          <div class="md-footer-copyright__highlight">
            Copyright &copy; 2014-2020 <a href="https://zuoguocai.gitee.com">国才大叔笔记</a>, All Rights Reserved. <a href="https://zuoguocai.github.io" target="_blank">My Docs</a>
          </div>
        
        Made with
        <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
          Material for MkDocs
        </a>
      </div>
      
    </div>
  </div>
</footer>
      
    </div>
    
      <script src="../../../assets/javascripts/vendor.3636a4ec.min.js"></script>
      <script src="../../../assets/javascripts/bundle.e9fe3281.min.js"></script><script id="__lang" type="application/json">{"clipboard.copy": "\u590d\u5236", "clipboard.copied": "\u5df2\u590d\u5236", "search.config.lang": "ja", "search.config.pipeline": "trimmer, stemmer", "search.config.separator": "[\\uff0c\\u3002]+", "search.result.placeholder": "\u952e\u5165\u4ee5\u5f00\u59cb\u641c\u7d22", "search.result.none": "\u6ca1\u6709\u627e\u5230\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.one": "\u627e\u5230 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.other": "# \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c"}</script>
      
      <script>
        app = initialize({
          base: "../../..",
          features: [],
          search: Object.assign({
            worker: "../../../assets/javascripts/worker/search.5eca75d3.min.js"
          }, typeof search !== "undefined" && search)
        })
      </script>
      
    
  </body>
</html>